var mongoose = require('mongoose');//引入mongoose建模工具模块 
var MovieSchema = new mongoose.Schema({
	doctor: String,
	title: String,
	language: String,
	country: String,
	summary: String,
	flash: String,
	poister: String,
	year: Number,
	meta:{
		//录入数据或者更新时间的记录
		createAt: {//录入||创建
			type: Date,
			default: Date.now()//默认值 创建的事件
		},
		updateAt: {//更新
			type: Date,
			default: Date.now()//默认值 创建的事件
		},
	},
	flash: String,
});//声明一个MovieSchema调用mongoose的Schema方法传入一个对象 
//pre save  每次存储都会调用这个方法
MovieSchema.pre('save',function(next){
	console.log(this.isNew);	
	return false;
	if(this.isNew){//判读数据是否为新增的 true 创建时间&&更新时间=Date.now();设置为当前时间
		this.meta.createAt = this.meta.updateAt=Date.now();
	}else{//如果有的话只更新updat时间
		this.meta.updateAt = Date.now();
	}
	next();//在pre save调用next() 存储流程才能走下去
})
//静态方法不会直接与数据库交互，只有经过模型编译实例化之后才会具有这个方法
MovieSchema.statics = {
	fetch: function(cb){//取出数据库里所有数据
		return this
			.find({})
			.sort('meta.updateAt')//按照更新时间排序
			.exec(cb)//执行回调方法
	},
	findById: function(id, cb){//查询单条数据
		return this
			.findOne({_id:id})
			.sort('meta.updateAt')//按照更新时间排序
			.exec(cb)//执行回调方法
	}

}

//导出这个模式通过module.expots 
module.exports = MovieSchema;